package com.smedi.ismedi.inmail.core.domain.aggregatemodel.weather;

import lombok.Data;
import org.apache.commons.lang3.StringUtils;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

/**
 * 每日每小时天气
 *
 * @author jiangqinxuan
 * @date 2021/07/26
 */
@Data
public class WeatherHourly implements Serializable {
    private int code;
    /**
     * 地区/城市名称
     */
    private String name;

    /**
     * 地区/城市ID
     */
    private long locationId;

    /**
     * 当天时间
     */
    private String time;

    /**
     * 当天时间
     */
    private String obsTime;

    /**
     * 当天每小时温度
     */
    private int temp;

    /**
     * 当天每小时天气状况图标的代码
     */
    private int icon;

    /**
     * 当天每小时天气状况的文字描述
     */
    private String text;

    /**
     * 当天每小时风向360角度
     */
    private int wind360;

    /**
     * 当天每小时风向
     */
    private String windDir;

    /**
     * 当天每小时风力
     */
    private int windScale;

    /**
     * 当天每小时风速，公里/小时
     */
    private int windSpeed;

    /**
     * 当天每小时相对湿度，百分比数值
     */
    private int humidity;

    /**
     * 当天每小时累计降水量，默认单位：毫米
     */
    private float precip;

    /**
     * 大气压强，默认单位：百帕
     */
    private int pressure;

    public LocalDateTime getTime() {
        if (null != this.time) {
            return dateStr2String(this.time);
        }
        if (null != this.obsTime) {
            return dateStr2String(this.obsTime);
        }
        return null;
    }

    private LocalDateTime dateStr2String(String dateStr) {
        String a = StringUtils.split(dateStr, "+")[0] + ":00";
        String b = StringUtils.replace(a, "T", " ");
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        return LocalDateTime.parse(b, formatter);
    }
}